Dynamically generating an information code

ABSTRACT

In response to an event in a device, an information code comprising an address to an information source and a parameter relating to the device is dynamically generated. The parameter is dynamically based on a current state according to the event of the device at a time that the information code is generated.

CROSS-REFERENCE TO RELATED APPLICATION

This is a continuation of U.S. application Ser. No. 14/240,391, filed Feb. 22, 2014, which is a national stage application under 35 U.S.C. §371 of PCT/US2011/054354, filed Sep. 30, 2011, both hereby incorporated by reference.

BACKGROUND

Matrix codes are used to encode information, such as a specific web address or uniform resource locator. For example, users scan matrix codes with a scanning device connected to the internet and access the specified web address therethrough.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting examples of the present disclosure are described in the following description, read with reference to the figures attached hereto and do not limit the scope of the claims. In the figures, identical and similar structures, elements or parts thereof that appear in more than one figure are generally labeled with the same or similar references in the figures in which they appear. Dimensions of components and features illustrated in the figures are chosen primarily for convenience and clarity of presentation and are not necessarily to scale. Referring to the attached figures:

FIG. 1 illustrates a block diagram of a system to provide a product resource according to an example;

FIG. 2 illustrates information codes according to examples;

FIG. 3 illustrates examples of the reader device and products that may use the code generation device;

FIG. 4 illustrates a block diagram of a decision device according to an example;

FIG. 5 illustrates use of the decision device to provide product information to a user according to examples;

FIG. 6 illustrates a schematic view of the system of FIG. 1 according to an example; and

FIG. 7 illustrates a method to provide a product resource according to an example.

DETAILED DESCRIPTION

In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which is depicted by way of illustration specific examples in which the present disclosure may be practiced. It is to be understood that other examples may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims.

Matrix codes encode information to allow a user to access a specific web address or uniform resource locator. The specific web address is predetermined or hard coded into the matrix code at the time the matrix code is created. At times it is desired to obtain information from a website or the internet, but not know the specific web address. For example, when a product, such as a computer or household appliance, encounters an event that provides an error code, the web address for general diagnostics may be provided. The user then searches for a specific solution within the website. Many products either do not have any access to the internet or do not have access to the internet when the event occurs. Moreover, the error code and/or web address may be long and require the user to manually enter such information into a web browser on a remote device. Manual entry may result in erroneous entries and/or frustration to users.

A decision device and system and method useable with the decision device are provided herein. The decision device includes an analysis engine that receives an information resource and at least one product parameter. The analysis engine searches the information resource using the at least one product parameter to identify at least one search result. The analysis engine also dynamically analyzes the at least one search result to provide the product resource. The product resource includes information related to a product and the at least one product parameter.

Information codes, such as matrix codes, may encode web addresses and parameters, such as the error code. The information code may then be scanned and analyzed by the decision device with access to the internet and/or a database with product resources. The decision device provides specific product resources that enable users to obtain additional information related to the user's specific product and targeted to the specified parameters. The additional information provided in the information code may include a solution, a diagnostic evaluation result, product details, and/or access to a customer service representative based on the specific parameters obtained from the specific product.

FIG. 1 illustrates a system to provide a product resource according to an example. The product resource may include a diagnostic solution to an error message, a maintenance or installation instruction, additional product information, and/or access to a customer service representative. The system 100 includes a code generation device 12, a reader device 14, a decode engine 16, and a decision device 18.

The code generation device 12 generates an information code. For example, the information code may be a matrix code, such as a two-dimensional barcode, that is scanable. FIG. 2 illustrates information codes 200 according to examples, such as a QR code® 22, a data matrix 24, an EZCode® 26, and/or a Microsoft® Tag 28. The information codes 200 illustrated provide the ability to transfer a large amount of data using one or more simple codes. The use of the term information code 200 refers to one or more codes contain data that may be read individually and/or in combination with another code. For example, a single information code 200 and/or multiple information codes 200 may be concatenated together to store and provide information in a simple and efficient manner.

The information code 200 includes an information resource 21 and at least one product parameter 23 encoded therein. The information resource 21 may be a web address to a general search engine, a specific product and/or manufacturer web site, and/or access to a dedicated database stored on the decision device 18 and/or a remote server. The information resource 21 provides a general resource that may provide additional information, but does not need to provide a static web address of a specified solutions or information page identifiable at the time the information code 200 is generated. The at least one product parameter 23 may include data related to the product, such as an error or event code, a product identifier, a device language, a user language, a serial number, and/or a version. The at least one product parameter 23 may also include an encryption identifier useable when the code generation device 12 to encrypt data in the information code 200. The decision device 18 uses the at least one product parameter 23 with the information resource 21 to dynamically provide additional information, such as a solution, to a problem, assistance diagnosing a problem, and/or assistance getting customer service.

The information code 200 provides a dynamically generated code that combines the information resource 21 and the at least one product parameter 23. For example, the information code 200 may be generated using the information resource 21 that is a generic web address and at least one product parameter 23 obtained from the product in a state determined at the time the information code 200 is generated. Therefore, the product resource that is obtained using the information code 200 is not hardcoded into the code, but dynamically generated based on the state of the product at the time the information code 200 is generated.

The code generation device 12 may be integrated into the product and/or connected thereto to generate the information code 200. For example, an error code may be generated on a device not connected to the internet, such as a refrigerator. The error code may be transmitted to a device connected to the internet, such as a web-enabled mobile device and/or a computer, using the information code 200 via the reader device 14. The code generation device 12 may also encrypt at least one of the information resource 21 and the at least one product parameter 23 that is encoded in the information code 200 for secure transmission of the information code 200.

The reader device 14 obtains the information code 200 from a product. FIG. 3 illustrates the reader device 14 and products 30 useable with the code generation device 12 according to examples. The reader device 14 may be a standalone device with a decode engine 16 connected there to. Alternatively, the reader device 14 may be connected to and/or integrated into the decision device 18, which has access to the internet. The reader device 14 reads one or more information code 200 and the decode engine 16 decodes the information code 200 to obtain the information resource 21 and the at least one product parameter 23. The decode engine 16 may utilize an error correction feature that corrects errors in the information code 200 obtained by the reader device 14.

The reader device 14 is illustrated as a mobile telephone with a camera. The camera may capture an image of the information code 200, and the mobile telephone may include a decode engine 16 that decodes the information code 200 and obtains the information resource 21 and the at least one product parameter 23 therefrom. Other examples include a special scanning device and/or a web camera that may take a picture of an information code 200, such as a two-dimensional barcode or matrix code and read, transmit, and/or interpret the information encoded therein.

The term product refers to a good, a service, and/or a combination thereof. Examples of the products 30 include a computing device with hardware and/or software that register an event or message 32, a computing device with operating system messages 34, such as an error before an operating system loads and/or installation instructions (i.e., uniform extensible firmware interface (UEFI), basic input/output system (BIOS)), a printer 36 with an error messages, a household appliance, such as a refrigerator 38 with an error or maintenance message, and/or an automobile 39 with an error or maintenance message. Use of the information codes 200 in products that have limited access to a user interface and/or the internet provides a user with a more valuable tool to obtain additional information using the decision device 18. For example, the decision device 18 may be used with a computing device with operating system messages 34, a refrigerator 38, and/or an automobile 39, all of which may have limited access to a user interface and/or the internet. Moreover, the automobile 39 illustrates an information code 200 that contains multiple information codes 200, illustrated as three information codes 200 that when concatenated may provide a larger amount of information than, for example, a single two-dimensional barcode provides. The information code 200 may be concatenated by the reader device 14 and/or the decision device 18 in accordance to device capabilities and application contained therein.

FIG. 4 illustrates a decision device 18 to provide a product resource according to an example. The decision device 18 is connected to the decode engine 16 and obtains the information code 200 therefrom. The decision device 18 may be a server and/or other computing device that is connected to the internet or other network having access to a database. The decision device 18 includes an analysis engine 42.

The analysis engine 42 searches the information resource 21 using the at least one product parameter 23 to identify at least one search result. Then, the analysis engine 42 dynamically analyzes the at least one search result to provide the product resource, including information related to a product 30 and at least one product parameter 23. Examples of the information related to a product 30 include a diagnostic solution, a query response, a customer service contact, and/or the at least one product parameter. The product resource includes information specific to a product 30 and/or event code. The product resource may be filtered according to the parameter(s) and may include a solution and/or information that is up to date and/or may change throughout the product's 30 lifecycle. The analysis engine 42 may also decrypt the information resource 21 and/or the at least one product parameter 23 when such information is encrypted by the code generation device 12. The decryption analysis engine 42 may receive an encryption identifier and/or an encryption key from the information code 200 decoded by the reader device 14, when the encryption identifier and/or the encryption key are encoded in the information code 200.

FIG. 5 illustrates use of the decision device 18 to provide product resource(s) to a user according to examples. FIG. 5 includes the information code 200 on a computing device with operating system messages 34. For example, in a UEFI environment diagnosis of a problem with the computing device that is preventing an operating system from starting up in the primary operating environment. The information code 200 provides the user a method to use a reader device 14, for example, an imaging device, such as a mobile device with a camera, to find a solution or to troubleshoot the problem with the UEFI based device. The reader device 14 is separate from the computing device with the operating system message 34. Since the computing device is not completely functional in its current state, the reader device 14 is used to obtain the additional information using the decision device 18.

Referring to FIG. 5, the information code 200 is read by the reader device 14, illustrated as a mobile device, such as a tablet. The reader device 14 captures the information code 200 and decodes it. The decision device 18 receives the information resource 21 and the at least one product parameter 23 from the reader device 14 and/or decode engine 16. The analysis engine 42 may also decrypt the information resource 21 and/or the at least one product parameter 23 using an encryption identifier or encryption key when the information code 200 includes encrypted information. The analysis engine 42 of the decision device 18 then provides the product resource 51 to the user.

The product resource 51 is illustrated to include the parameter(s) that were part of the information code 200. The product resource 51 may be presented to a user via a user interface, for example, a display 52. The display 52 may be connected to the decision device 18, such as a computer monitor; and/or integrated into the decision device 18, such as a mobile device with a screen. Examples of the product resource(s) 51 are illustrated in FIG. 5. The product resource 51 may also include a set of instructions that include information extracted from the product parameter(s) 23. The set of instructions may be a diagnostic solution to an error code and/or installation instructions to install and/or reinstall a hardware and/or software portion of the product 30. The set of instructions may be presented via an audio or visual presentation device, such as a list of instructions 53 and/or an audio and/or video presentation 54 with the instruction contained therein.

Another example includes a product resource 51 that allows a user to interact with a customer service representative 55, such as via a real-time chat over the internet and/or via telephone. Moreover, the user may receive a call back 56 from the customer service representation or an automated messaged that provides the product resource 51 to the user. For example, the call back 56 may be via the reader device 14 and/or a device connected to the reader device 14 that has a microphone and speaker attached thereto. The product resource 51 may also automatically transmit and/or provide the at least one product parameter to enable the customer service representative to better assist users. For example, the customer service representative may know the problem, the solution, product serial code, and/or warranty information, without the user manually (i.e., via typing or orally) transmitting data contained in the product parameter(s) 23.

The product resource 51 may further provide instructions for returning 57 the product, receiving an update 58 to the product, such as software updates; and/or a shopping cart 59 to order replacement and/or additional parts that the user may need to correct an error, replace a part, and/or correct a faulty part. The product resource 51 may provide users with information to return, and/or obtain additional and/or replacement parts. The product resource 51 information may assist the user in composing requests by automatically transferring information about the product, such as the product parameter(s) 23 using the decision device 18.

FIG. 6 illustrates a schematic view of the system 100 of FIG. 1 according to an example. As discussed above the system 100 includes a code generation device 12, a reader device 14, and a decision device 18. The code generation device 12 may for example be included in a computer system and/or may be formed from electrical components. When the code generation device 12 is part of a computer, it may include a code engine 61. The code engine 61 represents generally any combination of hardware and/or software to generate the information code 200. For example, the code engine 61 in FIG. 6 includes a memory 62 to store a set of instructions to generate the information code 200, a processor 63 to execute the set of instructions, and an interface 64. The processor 63 represents generally any processor configured to execute program instructions stored in memory 62 to perform various specified functions. The interface 64 represents generally any interface on the code generation device 12 that displays the information code 200.

The reader device 14 illustrated includes the decode engine 16; however, reader device 14 and the decode engine 16 may be on separate devices that are connected to one another. The decode engine 16 represents generally any combination of hardware and/or software to decode the information code 200. For example, the decode engine 16 in FIG. 6 includes a memory 62 to store a set of instructions to decode the information code 200, a processor 63 to execute the set of instructions, and an interface 64. The processor 63 represents generally any processor configured to execute program instructions stored in memory 62 to perform various specified functions. The interface 64 represents generally any interface on the decision device 18 that displays the product resource 51.

The decision device 18 includes an analysis engine 42, as discussed above with reference to FIG. 4. The analysis engine 42 represents generally any combination of hardware and/or software to analyze the information code 200. For example, the analysis engine 42 in FIG. 6 includes a memory 62 to store a set of instructions to search the information code 200 and dynamically analyze the search results, a processor 63 to execute the set of instructions, and an interface 64. The processor 63 represents generally any processor configured to execute program instructions stored in memory 62 to perform various specified functions. The interface 64 represents generally any interface on the decision device 18 that displays the product resource 51.

The memory 62 is illustrated to include an operating system 65 and applications 66. The operating system 65 represents a collection of programs that when executed by the processor 63 serve as a platform on which applications 66 may run. Examples of operating systems 65 include various versions of Microsoft's Windows®, Apple's Mac OS®, and Google's Android™.

Applications 66 represent program instructions that when executed by the processor 63 functions as an application. For example, in the code engine 61, the applications 66 function as an information code generator. The executable program instructions stored in memory 62 are illustrated as including a code module 67. The code module 67 represents program instructions that when executed by a processor 63 cause the implementation of the code engine 61. The executable instructions stored in the code module 67 may include the set of instructions from the memory 62 and/or a database external to the code engine 61. In response to the code software being initiated, the code module 67 provides instructions to the processor 63. The processor 63 executes the instructions to generate the information code 200 and provide the information code 200 to a user via the interface 64. The code module 67 may further include an encryption module 67A to encrypt the at least one of the information resource 21 and the at least one product parameter within the information code 200.

In the decode engine 16, the applications 66 function as a decoder. The executable program instructions stored in memory 62 are illustrated as including a decode module 68. The decode module 68 represents program instructions that when executed by a processor 63 cause the implementation of the decode engine 16. The executable instructions stored in the decode module 68 may include the set of instructions from the memory 62 and/or a database external to the decode engine 16. In response to the decode software being initiated, the decode module 68 provides instructions to the processor 63. The processor 63 executes the instructions to decode the information code 200 and extract the information resource 21 and the at least one product parameter 23 therefrom.

In the analysis engine 42, the applications 66 function as an analyzer and decision maker. The executable program instructions stored in memory 62 are illustrated as including an analysis module 69 and a decryption module 60. The analysis module 69 represents program instructions that when executed by a processor 63 cause the implementation of the analysis engine 42. The executable instructions stored in the analysis module 69 may include the set of instructions from the memory 62 and/or a database external to the analysis engine 42. In response to the analysis being initiated, the analysis module 69 provides instructions to the processor 63. The processor 63 executes the instructions to search the information resource 21 using the at least one product parameter 23 to identify at least one search result. The processor 63 further executes the instructions to dynamically analyze the at least one search result to provide the product resource 51. The product resource 51 may then be provided to a user via the interface 64.

The analysis module 42 may further include a decryption module 60. The decryption module 60 may be used prior to the analysis module 69 when the information resource 21 and the at least one product parameter 23 of the information code 200 is encrypted.

Referring to FIG. 6, the code engine 61, the decode engine 16, and the analysis engine 42 are described as combinations of hardware and/or programming. The hardware portions may include the processor 63. The programming portions may include the operating system 65, applications 66, and/or combinations thereof. The programming may be processor executable instructions stored on a tangible memory media and the hardware may include a processor 63 to execute the instructions. The memory 62 may store program instructions that when executed by the processor 63 cause the processor 63 to perform the program instructions. The memory 62 may be integrated in the same device as the processor 63 or it may be separate but accessible to that device and the processor 63.

In some examples, the program instructions may be part of software that may be executed by the processor 63 to perform a method using the system 100. The memory 62 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the software may be downloaded and installed. In other examples, the program instructions may be part of an application or applications already installed in the product. In further examples, the memory 62 may include integrated memory such as a hard drive.

FIG. 7 illustrates a method 700 to provide a product resource according to an example. In block 72, the decision device receives an information resource and at least one product parameter that is obtained from an information code. The information code may be obtained from the product by scanning the information code with a reader device connected to the decision device. For example, the reader device may include a mobile phone with a camera or a web camera that takes a picture of the information code, and/or a separate scanner that is connected to the decision device via the internet. The data contained in the information code read by the reader device may be encrypted with the code generation device. The information code may be generated with a code generation device. The code generation device may be connected to a product, such as integrated into a display on the product.

The decision device receives the information code from a decode engine that is connected to the decision device. The decode engine may be connected to or integrated into the reader device. The decode engine decodes the information code to obtain the information resource and the at least one product parameter.

In block 74, the decision device searches the information resource using the at least one product parameter to identify at least one search result. The decision device dynamically analyzes the at one least search result to provide the product resource, in block 76. The product resource provides information related to the product and may also include the at least one product parameter. The information related to the product may include at least one of a diagnostic solution, a query response, and a customer service contact.

In cases that the information code 200 contains encrypted data, for example, the information resource 21 and/or the at least one product parameter 23 are encrypted, the decision device may decrypt the encrypted information resource 21 and/or the at least one product parameter 23 using an encryption identifier and/or encryption key contained in the information code 200.

The present disclosure has been described using non-limiting detailed descriptions of examples thereof and is not intended to limit the scope of the present disclosure. It should be understood that features and/or operations described with respect to one example may be used with other examples and that not all examples of the present disclosure have all of the features and/or operations illustrated in a particular figure or described with respect to one of the examples. Variations of examples described will occur to persons of the art. Furthermore, the terms “comprise,” “include,” “have” and their conjugates, shall mean, when used in the present disclosure and/or claims, “including but not necessarily limited to.”

It is noted that some of the above described examples may include structure, acts or details of structures and acts that may not be essential to the present disclosure and are intended to be exemplary. Structure and acts described herein are replaceable by equivalents, which perform the same function, even if the structure or acts are different, as known in the art. Therefore, the scope of the present disclosure is limited only by the elements and limitations as used in the claims. 

What is claimed is:
 1. A method comprising: in response to an event in a device, dynamically generating, by at least one processor, an information code comprising an address to an information source and a parameter relating to the device, the parameter dynamically based on a current state according to the event of the device at a time that the information code is generated; and causing, by the at least one processor, display of the information code for imaging by a reader to obtain information regarding the event.
 2. The method of claim 1, wherein the event comprises an error, and the parameter provides information regarding the error.
 3. The method of claim 2, further comprising receiving, by the at least one processor, information regarding a solution to the error, the information generated by another device in response to the information code imaged by the reader.
 4. The method of claim 3, wherein receiving the information regarding the solution to the error comprises receiving a software update to update software in the device.
 5. The method of claim 2, wherein the at least one processor is part of the device.
 6. The method of claim 1, wherein generating the information code comprises generating a barcode that includes the address and the parameter relating to the device.
 7. The method of claim 1, wherein generating the information code comprises generating a matrix code that includes the address and the parameter relating to the device.
 8. The method of claim 1, wherein the address is not a static web address identifiable at the time that the information code is generated.
 9. The method of claim 1, further comprising encrypting at least one of the address and the parameter.
 10. The method of claim 1, wherein the address is a web address.
 11. A system comprising: a reader to read an information code dynamically generated based on a state of a product during operation of the product, the information code comprising an address to an information source and a product parameter that is dynamically based on the state of the product at a time that the information code was generated; and a processor to: send the information code to an analysis engine, and receive a search result responsive to the address and the product parameter, the search result comprising information to address the state of the product at the time that the information code was generated.
 12. The system of claim 11, wherein the reader comprises a camera to image the information code.
 13. The system of claim 11, wherein the search result comprises a software update to update the product.
 14. The system of claim 11, wherein the product parameter is based on an error that occurred in the product, and wherein the search result comprises information regarding a solution to the error in the product.
 15. The system of claim 11, wherein the information code comprises a barcode.
 16. The system of claim 11, wherein the information code comprises a matrix code.
 17. A non-transitory computer-readable storage medium storing instructions that upon execution cause at least one processor to: in response to an event in a device, dynamically generate an information code comprising an address to an information source and a parameter relating to the device, the parameter dynamically based on a current state according to the event of the device at a time that the information code is generated; and cause display of the information code for imaging by a reader to obtain information regarding the event.
 18. The non-transitory computer-readable storage medium of claim 17, wherein the event comprises an error, and the parameter provides information regarding the error.
 19. The non-transitory computer-readable storage medium of claim 17, wherein the instructions upon execution cause the at least one processor to further receive information regarding a solution to the event, the received information generated by another device in response to the information code imaged by the reader.
 20. The non-transitory computer-readable storage medium of claim 19, wherein receiving the information regarding the solution to the error comprises receiving a software update to update software in the device. 